Guild icon
wafer.space Community
📐 - Designing / 📝-project-template / Antenna violations
Between 2025-10-31 11:59 p.m. and 2025-12-01 12:00 a.m.
Avatar
Tim 'mithro' Ansell 2025-11-19 8:47 p.m.
8:47 p.m.
I think @Leo Moser (mole99) mentioned we need to look into why antenna violations are appearing. OpenROAD is suppose to produce DRC clean results and I believe it should be doing so for GF180MCU.
Avatar
ReJ aka Renaldas Zioma 2025-11-19 9:43 p.m.
I have a similar issue: 11 net and 10 pin violations. Couldn’t fix them regardless of parameters I have tried so far.
9:44 p.m.
AntennaRepair step reports that it fixed all the issues, but antenna check afterwards finds the same issues 🤷‍♂️
9:49 p.m.
Also I can’t seem to find a way to enable pass that does INSERT_ECO_DIODES (edited)
Avatar
Leo Moser (mole99) 2025-11-20 8:19 a.m.
Before the second shuttle, I would like to investigate why these antenna violations occur. This can be either a limitation of OpenROAD or a misconfiguration in LibreLane. I will need to compare this with ORFS to see if it produces fewer or no antenna violations when using the open source PDKs. A small number of low-ratio antenna violations will most likely not cause any problems. Tiny Tapeout has been doing this from the start. Nevertheless, there are a few things you can do to reduce the antenna violations. 1. You can increase the number of antenna insertion iterations and the margin to overfix them. These are the default values: GRT_ANTENNA_ITERS: 3 GRT_ANTENNA_MARGIN: 10 # % 2. You can manually insert antenna diodes. # https://librelane.readthedocs.io/en/latest/reference/api/steps/index.html#librelane.steps.ECODiode INSERT_ECO_DIODES: - target: "bidir[0].pad/A" - target: "bidir[1].pad/A" For this to take effect, you also need to add the Odb.InsertECODiodes step to the flow. meta: version: 3 flow: Chip substituting_steps: ... +OpenROAD.GlobalRouting: Odb.InsertECODiodes ... (or after detailed routing) ... +OpenROAD.DetailedRouting: Odb.InsertECODiodes ...
Avatar
Tim 'mithro' Ansell 2025-11-20 11:32 a.m.
@Leo Moser (mole99) - OpenROAD has a pretty big CI system
Avatar
ReJ aka Renaldas Zioma 2025-11-20 11:58 a.m.
11:59 a.m.
@Leo Moser (mole99) it looks adding DRT_ANTENNA_REPAIR_ITERS: 10 did the trick! Those elusive antennas were result of Detailed Routing. I think that explains why cranking up GRT_ANTENNA_MARGIN wouldn't do much for me. (edited)
👍 2
12:01 p.m.
In contrast my awkward attempts at INSERT_ECO_DIODES eventually did fix the antennas, but made LVS to fail 😐 (edited)
12:01 p.m.
@Leo Moser (mole99) Thanks for OpenROAD.DetailedRouting: Odb.InsertECODiodes tip. Got me thinking! 🙂 (edited)
12:04 p.m.
@LukeW could you try DRT_ANTENNA_REPAIR_ITERS: 10 and see if it helps you too?
12:05 p.m.
Now lets see if DRC is going to pass awkwardsweat
Avatar
Thanks, my report was with the unmodified template repo, I haven't been running the klayout DRC for development. I can take a look later on tonight.
Avatar
Leo Moser (mole99) 2025-11-20 2:29 p.m.
@ReJ aka Renaldas Zioma I'm wondering how you found out about DRT_ANTENNA_REPAIR_ITERS? By chance? Because it's not yet in the docs, as it was a pretty recent addition to LibreLane :) The only reason I can think of for why DRT_ANTENNA_REPAIR_ITERS is 0 by default is because the whole rip-up and partial routing was quite buggy in OpenROAD until recently. But it seems that it works mostly fine now? If so, I can add this as a default option to the template and we can see how well it fixes antenna violations in different designs.
Avatar
ReJ aka Renaldas Zioma 2025-11-20 2:33 p.m.
@Leo Moser (mole99) by reading logs awkwardsweat There was a warning in the log after detailed routing that DRT_ANTENNA_REPAIR_ITERS is set to 0 and the pass going to be skipped. (edited)
Avatar
Avatar
ReJ aka Renaldas Zioma
@Leo Moser (mole99) by reading logs awkwardsweat There was a warning in the log after detailed routing that DRT_ANTENNA_REPAIR_ITERS is set to 0 and the pass going to be skipped. (edited)
Leo Moser (mole99) 2025-11-20 2:36 p.m.
Haha, I see 😄 Well done! I think I'll enable antenna repair after DRT in the template by default. If OpenROAD crashes, we can disable it again. If partial route produces strange results, LVS will alert us.
👍 1
Avatar
Tim 'mithro' Ansell 2025-11-20 9:55 p.m.
@Leo Moser (mole99) - Do we have a tracking bug for the antenna stuff somewhere?
9:57 p.m.
@Leo Moser (mole99) - BTW The OpenROAD team owes me a few favours (but they are quite busy), so if we need anything from them it should be pretty easy to get fixes done.
Avatar
Just to confirm, DRT_ANTENNA_REPAIR_ITERS: 10 fixes my antenna violations
🎉 2
Avatar
Avatar
Tim 'mithro' Ansell
@Leo Moser (mole99) - Do we have a tracking bug for the antenna stuff somewhere?
Leo Moser (mole99) 2025-11-21 6:02 a.m.
I will open a LibreLane PR to enable DRT_ANTENNA_REPAIR_ITERS by default so that we can track any regressions through the LibreLane CI.
Avatar
Avatar
Tim 'mithro' Ansell
@Leo Moser (mole99) - BTW The OpenROAD team owes me a few favours (but they are quite busy), so if we need anything from them it should be pretty easy to get fixes done.
Leo Moser (mole99) 2025-11-21 6:03 a.m.
There might be a different issue that I would like to get fixed by the OpenROAD team. I'll let you know 👌🏻
Exported 23 message(s)
Timezone: UTC+0